1.桶排序
//#include<stdio.h>//桶排序1,不多次运行;把重复数字删除，只留一个
//int main(){
//    int arr[20]={0};//注意题目要求的n的取值范围，要把值都收录进去
//    int n=0,i=0,j=0,k=0;
//    scanf("%d",&n);
//    for(i=0;i<n;i++){
//        scanf("%d",&k);
//        arr[k]++;
//    }
//    for(i=0;i<20;i++){
//        if(arr[i]){
//            printf("%d",i);
//        }
//    }
//    return 0;
//}
2.冒泡排序(优化
//#include<stdio.h>
//int main(){
//    int arr[5]={0};
//    int i=0,j=0,temp=0;
//    int n=5;
//    for(i=0;i<n;i++){
//        scanf("%d",&arr[i]);
//    }
//    int flag=1;
//    for(i=0;i<n-1;i++){
//        for(j=0;j<n-1-i;j++){
//            if(arr[j]>arr[j+1]){
//                temp=arr[j];
//                arr[j]=arr[j+1];
//                arr[j+1]=temp;
//                flag=0;
//            }
//        }
//        if(flag){
//            break;
//        }
//    }
//    for(i=0;i<n;i++){
//        printf("%d ",arr[i]);
//    }
//    return 0;
//}
3.两个正整数的最大公约数与最小公倍数之和
//#include<stdio.h>
//int main(){
//    long n=0,m=0,max=0,min=0,temp=0,p=0,q=0;
//    scanf("%ld %ld",&n,&m);
//    p=m,q=n;
//    while(m%n){
//        m=m%n;
//        if(m<n){
//            temp=m;
//            m=n;
//            n=temp;
//        }
//    }
//    max=n;
//    min=p*q/max;
//    printf("%ld",min+max);
//    return 0;
//}
4.无临时变量交换ab
(1)
//#include<stdio.h>
//int main(){
//    int a=0,b=0;
//    a=1;
//    b=2;
//    a=a+b,b=a-b,a=a-b;
//    return 0;
//}
(2)
//a=a^b;b=a^b;a=a^b;
5.斐波那契数列与上台阶
//#include<stdio.h>
//int main(){
//    int n=0;
//    scanf("%d",&n);
//    int DG(int n);
//    printf("%d",DG(n));
//    return 0;
//}
//int DG(int n){
//    if(n<=2){
//        return n;
//    }
//    else{
//        return DG(n-1)+DG(n-2);
//    }
//}
6.求阶乘的和
//#include<stdio.h>
//int f(int i){
//    if(i<=2){
//        return i;
//    }
//    else{
//        return i*f(i-1);
//    }
//}
//int main(){
//    int n=0;
//    int i=0,sum=0;
//    scanf("%d",&n);
//    for(i=1;i<=n;i++){
//        sum+=f(i);
//    }
//    printf("%d",sum);
//    return 0;
//}
7.KiKi想知道一个n阶方矩是否为上三角矩阵，请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵，主对角线为从矩阵的左上角至右下角的连线。

输入描述：
第一行包含一个整数n，表示一个方阵包含n行n列，用空格分隔。 (2≤n≤10)

从2到n+1行，每行输入n个整数（范围-231~231-1），用空格分隔，共输入n*n个数。

输出描述：
一行，如果输入方阵是上三角矩阵输出"YES"并换行，否则输出"NO"并换行。
//typedef long long ll;
//#include<stdio.h>
//int main(){
//    ll n=0,i=0,j=0,count=0;
//    scanf("%lld",&n);
//    ll arr[10][10]={0};
//    for(i=0;i<n;i++){
//        for(j=0;j<n;j++){
//            scanf("%lld",&arr[i][j]);
//            if(i>j){
//                if(arr[i][j]==0){
//                    count++;
//                }
//            }
//        }
//    }
//    ll sum=0;
//    sum=(n*(n-1))/2;
//    if(sum==count){
//        printf("YES\n");
//    }
//    else{
//        printf("NO\n");
//    }
//    return 0;
//}
8.删除指定数字
(1)新数列法
//#include<stdio.h>
//int main(){
//    int n=0,i=0,j=0;
//    int arr[51]={0},brr[51]={0};
//    scanf("%d",&n);
//    for(i=0;i<n;i++){
//        scanf("%d",&arr[i]);
//    }
//    int del=0;
//    scanf("%d",&del);
//    for(i=0;i<n;i++){
//        if(arr[i]!=del){
//            brr[j]=arr[i];
//            j++;
//        }
//    }
//    for(i=0;i<j;i++){
//        printf("%d ",brr[i]);
//    }
//    return 0;
//}
        (2)跳过法
//#include<stdio.h>
//int main(){
//    int n=0,i=0,j=0,k=0;
//    int arr[51]={0};
//    scanf("%d",&n);
//    for(i=0;i<n;i++){
//        scanf("%d",&arr[i]);
//    }
//    scanf("%d",&k);
//    for(i=0;i<n;i++){
//        if(arr[i]!=k){
//            printf("%d ",arr[i]);
//        }
//    }
//    return 0;
//}
        (3)运用continue
//#include<stdio.h>
//int main(){
//    int n=0,i=0,j=0,k=0;
//    int arr[51]={0};
//    scanf("%d",&n);
//    for(i=0;i<n;i++){
//        scanf("%d",&arr[i]);
//    }
//    scanf("%d",&k);
//    for(i=0;i<n;i++){
//        if(arr[i]==k){
//            continue;
//        }
//        else{
//            printf("%d ",arr[i]);
//        }
//    }
//    return 0;
//}
        (4)乾坤大挪移
//#include<stdio.h>
//int main(){
//    int n=0,i=0,j=0,k=0;
//    int arr[51]={0};
//    scanf("%d",&n);
//    for(i=0;i<n;i++){
//        scanf("%d",&arr[i]);
//    }
//    scanf("%d",&k);
//    int count=0;
//    for(i=0;i<n;i++){
//        if(arr[i]==k){
//            for(j=i;j<n;j++){
//                arr[j]=arr[j+1];
//            }
//            count++;
//            i--;//倘若删除掉需删数后，如果不进行这一步，就会执行i++，这样即使删除了需删数，也不会对接下来的一个需删数产生影响
//        }
//    }
//    for(i=0;i<n-count;i++){
//        printf("%d ",arr[i]);
//    }
//    return 0;
//}